]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
userMenu: Force reload of background-image on icon changes
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 21 Sep 2012 14:24:50 +0000 (16:24 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 24 Sep 2012 20:03:06 +0000 (22:03 +0200)
When changing the user's avatar image, AccountsService will
overwrite the old image with the new one, so the location
returned by get_icon_file() is always the same.
In order to pick up the change, we need to make sure to clear the
previous image from both StTextureCache and StThemeNode's paint
cache.

https://bugzilla.gnome.org/show_bug.cgi?id=679268

js/ui/userMenu.js

index 0a3192d12ddabb35c06f9d3fd75e1a07f28f7f3c..6ed2e8443c2d8aea55f509f0f22bf6574e3f0d0e 100644 (file)
@@ -73,6 +73,11 @@ const UserAvatarWidget = new Lang.Class({
             let file = Gio.File.new_for_path(iconFile);
             this.actor.child = null;
             this.actor.style = 'background-image: url("%s");'.format(iconFile);
+
+            // AccountsService uses a fixed location for avatar images, so
+            // we need to clear out all cached data to pick up image changes,
+            // see https://bugzilla.gnome.org/show_bug.cgi?id=679268
+            this.actor.clear_background_image();
         } else {
             this.actor.style = null;
             this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic',